Skip to content

web: /v36_status reports real V35->V36 state (de-stub) - #372

Merged
frstrtr merged 1 commit into
masterfrom
dashboard/v36-status-real-state
Jun 23, 2026
Merged

web: /v36_status reports real V35->V36 state (de-stub)#372
frstrtr merged 1 commit into
masterfrom
dashboard/v36-status-real-state

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 23, 2026

Copy link
Copy Markdown
Owner

What

rest_v36_status() (route /v36_status) returned a frozen stub: auto_ratchet.state="voting", v35_shares=0, v36_shares=0, v36_percentage=0.0 regardless of real chain state — only height/sample_size were ever populated. On a node mid-cross this lies about the V35->V36 transition (the founding-charter stub class the dashboard exists to kill).

Fix

The sibling rest_version_signaling() already derives the truthful ratchet state (voting/activated/confirmed) and v36 share counts/percentage from chain data. /v36_status now sources from it:

  • auto_ratchet.state / persisted_state <- derived effective state
  • share_chain.{sample_size,v36_shares,v36_percentage} <- overall_total/overall_v36_shares/overall_v36_share_pct
  • v35_shares = max(0, sample_size - v36_shares); height still from sharechain stats

Edge cases: non-transition coins (DASH etc.) get rest_version_signaling() empty {}, leaving truthful zeros; a too-short chain early-returns before the overall_* fields, handled by .value() defaults.

Scope

Read/web (non-consensus) path only — pool aggregates and consensus logic untouched. Builds clean locally (c2pool target links; only pre-existing stdlib warnings). Serves the live LTC prod V35->V36 cross (#288) crossing-visibility charter (#3). GPG-signed.

rest_v36_status() returned a hardcoded auto_ratchet.state="voting" with
v35_shares=0/v36_shares=0/v36_percentage=0.0 regardless of actual chain
state, only ever filling height/sample_size. On a node mid-cross this lied
about the V35->V36 transition (the founding-charter stub class) while the
sibling rest_version_signaling() already derived the truthful state and
percentages from the same chain data.

/v36_status now sources auto_ratchet.state and the v35/v36 share counts +
percentage from rest_version_signaling(). Non-transition coins (its early
{} return) leave truthful zeros; a too-short chain early-returns before the
overall_* fields, handled by .value() defaults. Read/web path only; pool
aggregates and consensus untouched.

Serves the live LTC prod V35->V36 cross (#288) crossing-visibility charter.
@frstrtr
frstrtr merged commit 9dc646b into master Jun 23, 2026
20 checks passed
@frstrtr
frstrtr deleted the dashboard/v36-status-real-state branch June 23, 2026 15:15
frstrtr added a commit that referenced this pull request Jun 23, 2026
web: /v36_status reports real V35->V36 state (de-stub)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant